﻿//给定一个长度为 n 的整数 山脉 数组 arr ，其中的值递增到一个 峰值元素 然后递减。
//返回峰值元素的下标。
//你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。
//
//输入：arr = [0, 1, 0]
//输出：1
//
//输入：arr = [0, 2, 1, 0]
//输出：1
//
//输入：arr = [0, 10, 5, 2]
//输出：1
//
//提示：
//	3 <= arr.length <= 10^5
//	0 <= arr[i] <= 10^6
//	题目数据 保证 arr 是一个山脉数组

class Solution {
public:
    int peakIndexInMountainArray(vector<int>& arr) {
        int n = arr.size();
        // 遍历数组内每⼀个元素，直到找到峰顶

        for (int i = 1; i < n - 1; i++)
            // 峰顶满⾜的条件
            if (arr[i] > arr[i - 1] && arr[i] > arr[i + 1])
                return i;

        // 为了处理oj需要控制所有路径都有返回值
        return -1;
    }
};
